﻿/*
    This file is part of News Worm.

    News Worm is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    News Worm is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with News Worm.  If not, see <http://www.gnu.org/licenses/>.
 */

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Threading.Tasks;

namespace NewsWorm {
    internal interface IFeedManager {
        void Add ( Feed feed );
        bool Remove ( Feed feed );
        List<NonCachedItem> RefreshAll();
        List<Feed> Feeds { get; }
        int FeedCount { get; }
        Feed GetFeedByTitle ( string title );
        Feed GetFeedByUrl ( string url );
        FeedItem GetFeedItemByUrl ( string url );
        Dictionary<string, string> VisitedItems { get; set; }
        List<string> RemovedItems { get; }
        bool PreserveState ( string path );
        void ReloadRemovedItems ( string path );
        List<string> LastFeedUrls { get; }
        void SaveUrlHistory ( string path );
        List<FavoriteItem> StarredItems { get; }
        void SaveFavoriteHistory ( string path );
        FavoriteItem GetFavoriteByUrl ( string url );
        List<string> LastExportPaths { get; }
        void SaveExportPaths ( string path );
        bool PreserveFeeds ( string path );
        List<FeedItem> GetAllArticles();
    }
}
